package cn.com.bob.library.service;

import cn.com.bob.library.entity.Book;
import cn.com.bob.library.entity.User;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author 12948
* @description 针对表【user】的数据库操作Service
* @createDate 2023-06-30 08:27:12
*/
public interface UserService extends IService<User> {

    /**
     * 添加用户
     * @param :
     * @return Int
     */
    Integer addUser(User user,String username);


    /**
     * 删除用户
     * @param username:
     * @return Int
     */

    Integer deleteUserByUsername(String username);

    /**
     * 更新用户信息
     * @param username:
     * @return user
     */

    Integer updateUserByUsername(User user,String username);


    /**
     * 查询所有用户，返回集合
     * @param :
     * @return List<User>
     */
    List<User> queryAllUsers();

    /**
     * 查询所有的普通用户
     * @param :
     * @return List<User>
     */
    List<User> queryAllNormalUsers();

    /**
     * 查询所有的图书管理员
     * @param :
     * @return List<User>
     */
    List<User> queryAllBookManagers();

    /**
     * 查询所有的管理员
     * @param :
     * @return List<User>
     */
    List<User> queryAllManagers();

    /**
     *根据用户名查询用户
     * @param username:
     * @return User
     */
    User login(String username,String password);

    /**
     * 获取某用户借阅的所有图书
     * @param userId:
     * @return List<Book>
     */
    List<Book> getBorrowBooks(Integer userId);

    /**
     * 通过书名查询已经借阅的书籍
     * @param title:
     * @return List<Book>
     */
    List<Book> getBorrowBooksByTitle(String title,Integer userId);

    /**
     * 归还图书
     * @param userId:
     * @param bookId:
     * @return void
     */
    void returnBook(Integer userId,Integer bookId);


}
